كيف تفهم هيكلية نظام الملفات في لينكس
يُعد نظام الملفات في لينكس (Linux File System Hierarchy) من أبرز جوانب هذا النظام المفتوح المصدر، إذ يمثل البنية التحتية التي تنظم كيفية تخزين البيانات والوصول إليها. يعتمد لينكس على نموذج هرمي جذر، يختلف جذرياً عن أنظمة الملفات الأخرى مثل Windows، مما يجعله في كثير من الأحيان غير مألوف للمستخدمين الجدد. تكمن أهمية فهم هيكلية نظام الملفات في أنها تساعد المسؤولين عن النظام والمطورين والمستخدمين المتقدمين على إدارة النظام بفعالية، تحديد مواقع الملفات، أداء النسخ الاحتياطي، واستكشاف الأخطاء وإصلاحها بكفاءة.
في هذا المقال، سيتم التعمق في شرح هيكلية نظام الملفات في لينكس بشكل مفصل وشامل، مع توضيح كل دليل (Directory) رئيسي ووظيفته ضمن النظام، بالإضافة إلى التطرق إلى بعض المفاهيم التقنية المرتبطة بهذه الهيكلية، وأفضل الممارسات في التعامل معها.
الأساس النظري لهرمية نظام الملفات في لينكس
يعتمد نظام الملفات في لينكس على بنية شجرية تبدأ من الجذر الذي يُرمز إليه بالرمز /. من هذا الجذر تتفرع باقي الأدلة (Directories) التي تحتوي على ملفات النظام، ملفات المستخدمين، أدوات التكوين، التطبيقات، الأجهزة، وغيرها. لا توجد محركات أقراص بأحرف كما في أنظمة Windows (مثل C: أو D:)؛ بل تُركب (mount) جميع أنظمة الملفات، بما في ذلك الأقراص الصلبة والأقراص الخارجية، في نقاط داخل هذه الشجرة.
كل شيء في لينكس هو ملف — سواء أكان ملفاً عادياً أو دليلاً أو جهازاً طرفياً. هذا المفهوم يُبسط التفاعل مع النظام ويوفر تجانساً في المعالجة.
الدليل الجذر /
يشكل أساس بنية نظام الملفات. هو الجد الأكبر لجميع الأدلة والملفات. لا يمكن لأي شيء أن يوجد خارج هذا الدليل، وهو أول نقطة يجب أن يبدأ منها النظام عند الإقلاع. تُركب جميع الأدلة الأخرى ضمنه، سواء كانت من أقراص منفصلة أو أقسام مختلفة.
الأدلة الأساسية في نظام الملفات
1. /bin
يحتوي هذا الدليل على البرامج التنفيذية (binaries) الأساسية التي يحتاجها النظام للعمل في وضع المستخدم العادي. تشمل الأدوات التي تُستخدم عادة في الطرفية (shell) مثل ls, cp, mv, rm, cat, وغيرها. تُعد هذه الأدوات ضرورية لتشغيل النظام، ويجب أن تكون متاحة في جميع الأوقات، حتى في وضع الإنقاذ.
2. /sbin
يشبه /bin ولكنه يحتوي على الأدوات التنفيذية الخاصة بإدارة النظام والتي تتطلب امتيازات الجذر (root). أمثلة على ذلك fsck, reboot, mount, iptables. غالباً لا يستطيع المستخدم العادي استخدام أدوات هذا الدليل بدون صلاحيات sudo.
3. /etc
يضم ملفات التكوين (Configuration Files) الخاصة بالنظام والبرمجيات المثبتة. لا يحتوي على ملفات تنفيذية، إنما على ملفات نصية تقوم بتحديد سلوك النظام والخدمات. من أمثلة الملفات المهمة هنا:
-
/etc/fstab: لتركيب أنظمة الملفات عند الإقلاع. -
/etc/passwd: يحتوي على معلومات المستخدمين. -
/etc/hosts: لتحديد أسماء الأجهزة محلياً.
4. /dev
يمثل هذا الدليل الأجهزة المتصلة بالنظام، مثل الأقراص الصلبة، المنافذ، والأجهزة الطرفية، على شكل ملفات. مثال: /dev/sda يمثل القرص الصلب الأول. تُنشأ هذه الملفات ديناميكياً عادة عبر udev وهي ضرورية لتفاعل النظام مع العتاد.
5. /proc
نظام ملفات افتراضي (Virtual Filesystem) يُستخدم لتوفير معلومات عن العمليات الجارية وحالة النظام. لا يحتوي على ملفات حقيقية بل ملفات تمثل الذاكرة الحالية للنظام. مثال: /proc/cpuinfo يحتوي على معلومات عن المعالج، و/proc/meminfo يعرض حالة الذاكرة.
6. /sys
مثل /proc، هو نظام ملفات افتراضي يعرض معلومات عن البنية المادية للنظام (العتاد). يتم من خلاله التحكم بالعديد من سمات النظام، ويُستخدم عادة من قبل أدوات إدارة العتاد والسائقين (drivers).
7. /var
يحتوي على البيانات المتغيرة (variable files)، مثل سجلات النظام (logs) الموجودة في /var/log، وقواعد البيانات المؤقتة، وصفحات البريد الإلكتروني، والطابعات. هذا الدليل يمكن أن ينمو كثيراً بمرور الوقت، لذلك تتم مراقبته عن كثب.
8. /tmp
يُستخدم لتخزين الملفات المؤقتة التي تُنشأ أثناء تشغيل البرامج. يمكن حذف الملفات من هذا الدليل تلقائياً عند إعادة تشغيل النظام أو بعد مدة زمنية. يجب أن يكون هذا الدليل قابلاً للكتابة من جميع المستخدمين.
9. /usr
من أكبر الأدلة في النظام، يحتوي على البرامج والتطبيقات المثبتة التي لا تكون ضرورية لتشغيل النظام في الوضع الأساسي. داخله نجد:
-
/usr/bin: البرامج التنفيذية للمستخدمين. -
/usr/sbin: أدوات النظام غير الأساسية. -
/usr/lib: المكتبات المشتركة (shared libraries). -
/usr/share: الملفات المشتركة وغير المعمارية مثل الوثائق، الأيقونات، واللغات.
10. /home
يحتوي على الأدلة الشخصية للمستخدمين العاديين. كل مستخدم لديه دليل خاص به داخل /home، مثل /home/mohamed. هنا تُخزن ملفات المستخدم، الإعدادات الشخصية، والمستندات.
11. /root
هو الدليل الشخصي لمستخدم الجذر (superuser). لا يجب الخلط بينه وبين الجذر /. يمكن القول إن /root هو نظير /home/root ولكن مخصص للمسؤول.
12. /boot
يحوي الملفات الأساسية لعملية الإقلاع، مثل نواة النظام (kernel) والمحمّل الأولي للإقلاع (bootloader) مثل GRUB. يجب عدم تعديل ملفات هذا الدليل دون معرفة مسبقة لأنه حساس جداً.
13. /lib و/lib64
تضم المكتبات البرمجية المشتركة المطلوبة لتشغيل الملفات التنفيذية في /bin و/sbin. تُعتبر هذه المكتبات ضرورية للنظام ولا يجب حذفها أو تعديلها.
14. /media و/mnt
-
/media: تُستخدم لتركيب الأجهزة الخارجية تلقائياً مثل الأقراص USB أو أقراص DVD. -
/mnt: تُستخدم كنقطة تركيب مؤقتة من قبل المسؤولين لتركيب أنظمة ملفات خارجية.
15. /opt
يُستخدم لتثبيت البرمجيات الاختيارية التي لا تتبع البنية القياسية لنظام الملفات. يمكن أن تحتوي البرامج المثبتة يدوياً أو من مصادر خارجية. كل برنامج يُفضل أن يُثبّت في مجلد فرعي داخل /opt.
16. /srv
يحتوي على البيانات الخاصة بالخدمات المقدمة من النظام مثل خدمات الويب أو FTP. مثال: ملفات موقع ويب يتم استضافته على الخادم قد توضع في /srv/www.
جدول توضيحي للأدلة الرئيسية في لينكس
| الدليل | الوظيفة |
|---|---|
/ |
الجذر الأساسي لبنية النظام |
/bin |
البرامج الأساسية للمستخدمين |
/sbin |
أدوات النظام التي تتطلب صلاحيات الجذر |
/etc |
ملفات التكوين |
/dev |
تمثيل الأجهزة كملفات |
/proc |
معلومات العمليات والعتاد |
/sys |
إدارة العتاد |
/var |
ملفات متغيرة مثل السجلات |
/tmp |
ملفات مؤقتة |
/usr |
البرامج والملفات الثانوية |
/home |
مجلدات المستخدمين |
/root |
المجلد الشخصي لمستخدم الجذر |
/boot |
ملفات إقلاع النظام |
/lib, /lib64 |
المكتبات المشتركة لتشغيل البرامج |
/media |
تركيب تلقائي للأجهزة الخارجية |
/mnt |
تركيب يدوي مؤقت للأقراص |
/opt |
برامج إضافية اختيارية |
/srv |
بيانات خدمات النظام |
النقاط المهمة في التعامل مع بنية نظام الملفات
-
الأذونات (Permissions): تُحدد من يمكنه قراءة أو كتابة أو تنفيذ الملفات. التحكم في هذه الأذونات ضروري لضمان أمن النظام.
-
الملفات الرمزية (Symlinks): تُستخدم للإشارة إلى ملفات أو أدلة أخرى. تشبه الاختصارات في أنظمة أخرى.
-
المسارات النسبية والمطلقة: المسار المطلق يبدأ من الجذر
/، بينما المسار النسبي يبدأ من موقع المستخدم الحالي. -
الاحتياطات الأمنية: لا يجب التلاعب بالدليل
/etcأو/bootأو/libدون معرفة مسبقة، حيث أن الخطأ قد يؤدي إلى تعطل النظام. -
التحديث والنسخ الاحتياطي: يجب تحديد أدلة مثل
/etc,/home,/varعند إجراء نسخ احتياطي، كونها تحوي أهم البيانات والتكوينات.
الخلاصة
فهم بنية نظام الملفات في لينكس يُعد ضرورة لكل مستخدم يرغب في استغلال النظام بأقصى كفاءة. فكل دليل له غرض محدد ووظيفة تكاملية تضمن استقرار النظام وأمنه. يتضح من البنية الهرمية كيف أن لينكس مبني على أسس واضحة وعملية، تتيح للمستخدمين والمديرين قدرة كبيرة على التحكم والإدارة. هذا الفهم العميق يوفر أساساً متيناً لتعلم المزيد حول إدارة الأنظمة، الأمان، الأداء، وحتى تطوير البرمجيات في بيئة لينكس.
المراجع:
-
The Linux Documentation Project — https://www.tldp.org
-
Filesystem Hierarchy Standard (FHS) — https://refspecs.linuxfoundation.org/fhs.shtml

